/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package IT.Servlet;

import IT.Helper.Helper;
import java.io.*;
import java.net.*;

import java.util.Iterator;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.*;
import javax.servlet.http.*;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileItemFactory;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;

/**
 *
 * @author marlon
 */
public class DemoServlet extends HttpServlet {
   
    /** 
    * Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
    * @param request servlet request
    * @param response servlet response
    */
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        response.setContentType("text/html;charset=ISO-8859-1");
        PrintWriter out = response.getWriter();
        try {
            /* TODO output your page here
            out.println("<html>");
            out.println("<head>");
            out.println("<title>Servlet DemoServlet</title>");  
            out.println("</head>");
            out.println("<body>");
            out.println("<h1>Servlet DemoServlet at " + request.getContextPath () + "</h1>");
            out.println("</body>");
            out.println("</html>");
            */
           //String direccion = request.getSession().getServletContext().getRealPath("Archivos/");
            //String direccion = request.getSession().getServletContext().getContextPath();
            String cDirWeb = request.getSession().getServletContext().getRealPath("/");
            String cDirArchivos="Archivos\\";
//            boolean isMultipart = ServletFileUpload.isMultipartContent(request);
//            // Create a factory for disk-based file items
//            
//            FileItemFactory factory = new DiskFileItemFactory();
//
//            // Create a new file upload handler
//            ServletFileUpload upload = new ServletFileUpload(factory);
//
//            // Parse the request
//            /* FileItem */
//            List  items = upload.parseRequest(request);
//                      
//            // Process the uploaded items
//            Iterator iter = items.iterator();
//            while (iter.hasNext()) {
//                FileItem item = (FileItem) iter.next();
//
//                if (item.isFormField()) {
//                    //processFormField(item);
//                     String name = item.getFieldName();
//                     String value = item.getString();
//                     out.print("obj:"+name+" " +value+"<br/>");
//                } else {
//                    //processUploadedFile(item);
//                   String fieldName = item.getFieldName();
//                   String fileName = item.getName();
//                                      
//                   /*String contentType = item.getContentType();
//                   boolean isInMemory = item.isInMemory();
//                   long sizeInBytes = item.getSize();*/
//                      
//                   out.print("obj:"+fieldName+" " +fileName+" "+item.getContentType()+"<br/>");
//                   
//                   String[] cArchivo=fileName.split(".");
//                   
//                   if(cArchivo.length==0 || cArchivo.length==1){
//                       String nombreArchivo = fileName;
//                       StringTokenizer token = new StringTokenizer(nombreArchivo);
//                       nombreArchivo = "";
//                       while (token.hasMoreTokens()){
//                        nombreArchivo += token.nextToken();
//                       }
//                       
//                    
//                       File fichero; //= new File(fileName);
//                    
//                       String dFechaActual=new Helper().getFechaActualImg().trim();
//                       out.print("archivo:"+direccion+dFechaActual+nombreArchivo +"<br/>");
//
//                       fichero = new File(direccion+ dFechaActual+nombreArchivo );
//                       
//                       item.write(fichero); 
//                     
//            
//                   }
//                }
//            }
//        /*FileItemFactory es una interfaz para crear FileItem*/
//        FileItemFactory file_factory = new DiskFileItemFactory();		
//        /*ServletFileUpload esta clase convierte los input file a FileItem*/
//        ServletFileUpload servlet_up = new ServletFileUpload(file_factory);
//	/*sacando los FileItem del ServletFileUpload en una lista */
//        List items = servlet_up.parseRequest(request);
//		
//        for(int i=0;i<items.size();i++){
//	/*FileItem representa un archivo en memoria que puede ser pasado al disco duro*/
//         FileItem item = (FileItem) items.get(i);
//	/*item.isFormField() false=input file; true=text field*/
//            if (! item.isFormField()){
//                
//            
//            String cExtension="";
//            String[] cItem=item.getName().trim().split("\\.");            
//            out.print("--"+String.valueOf(cItem.length)+"<br/>");   
//            for (int j = 0; j < cItem.length; j++){
//              out.print("--"+cItem[j].trim()+"<br/>");   
//              cExtension=cItem[j].trim();
//            }
//            cExtension="."+cExtension.trim();
//            /*cual sera la ruta al archivo en el servidor*/
//            //File archivo_server = new File("c:/subidos/"+item.getName());
//            String cDemo=new Helper().getFechaActualImg().trim();
//            cDemo="file"+cDemo;
//            File archivo_server = new File(cDirWeb+cDirArchivos+cDemo+cExtension);        
//
//            /*y lo escribimos en el servido*/                                
//            item.write(archivo_server);
//             //File file=new File();
//
//            out.print("Nombre --> " + item.getName() );
//            out.print("<br> Tipo --> " + item.getContentType());
//            out.print("<br> tamaño --> " + (item.getSize()/1240)+ "KB");
//            out.print("<br>");
//          
//           }else{
//           
//           }
//        }
          //out.print("demo:"+request.getParameter("txtNobre"));
          //out.print(cDirWeb +cDirArchivos);
        } catch (Exception ex) {
            //Logger.getLogger(DemoServlet.class.getName()).log(Level.SEVERE, null, ex);
            out.print(ex.getMessage());
       // }catch (FileUploadException ex) {
         //   Logger.getLogger(DemoServlet.class.getName()).log(Level.SEVERE, null, ex);
        } finally { 
            out.close();
        }
    } 
  
    
    // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
    /** 
    * Handles the HTTP <code>GET</code> method.
    * @param request servlet request
    * @param response servlet response
    */
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        processRequest(request, response);
    } 

    /** 
    * Handles the HTTP <code>POST</code> method.
    * @param request servlet request
    * @param response servlet response
    */
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        processRequest(request, response);
    }

    /** 
    * Returns a short description of the servlet.
    */
    public String getServletInfo() {
        return "Short description";
    }
    // </editor-fold>
}
